package com.wongsi.spring5.entity;

import lombok.AccessLevel;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.RequiredArgsConstructor;

import javax.persistence.Entity;
import javax.persistence.Id;

/**
 * 。@Data注解会为我们添加一个有参构造器，
 * 但是使用@NoArgsConstructor注解之后，这个构造器就会被移除掉。
 * 现在，我们显式添加@RequiredArgsConstructor注解，
 * 以确保除了private的无参构造器之外，我们还会有一个有参构造器。
 */
@Data
@RequiredArgsConstructor
@NoArgsConstructor(access = AccessLevel.PRIVATE, force = true)
@Entity
public class Ingredient {
    @Id
    private final String id;
    private final String name;
    private final Type type;

    public static enum Type {
        WRAP, PROTEIN, VEGGIES, CHEESE, SAUCE
    }
}
